1. Field of the Invention
The present invention relates generally to manipulating graphic objects, and in particular, to a method, apparatus, and article of manufacture for manipulating graphic objects in a three-dimensional (3D) modeler using a two-dimensional (2D) graphic manipulator that is placed on a control plane of an object.
2. Description of the Related Art
Navigation within 3D scenes can be difficult, often disorienting the user by failing to provide an appropriate perspective or indication of the current view. When modifying an object, the user usually has to select a plane or vector of “interaction” to modify and then use controllers (e.g., glyphs or grips) to adjust certain aspects of the object. Such controllers are often attached to the object at a particular point (referred to as a “pivot point”) and provide limited editing functionality. Such prior art restrictions and limitations may be better understood with an explanation of prior art object modification in a 3D modeling environment.
Most 3D modelers have adopted a traditional 3D transform paradigm that is based on an in-canvas manipulator commonly called a “transform gizmo.” The different transform gizmos let users translate an object (e.g., move an object in space on a plane or on an axis), scale an object (e.g., proportionally or in an axis direction), and/or rotate an object (e.g., around one of the axis). Using a prior art transform gizmo, a user can quickly choose one or two axes when translating a selection with the mouse. A user can choose an axis by placing the mouse over any axis of the in-canvas manipulator, and then drag the mouse to translate the selection along that axis. In addition, when moving or scaling an object, users can use other areas of the gizmo to perform transforms along any two axes simultaneously. However, regardless of the manipulation performed, all actions are based off of a single fixed point on the object (either a pivot point, point of movement, point of scaling, or point of rotation).
In certain applications, there are three separate gizmos that are each configured to perform different actions. For example, FIGS. 1A-1C illustrate three different gizmos for moving (FIG. 1A), scaling (FIG. 1B), and rotating (FIG. 1C) an object. To differentiate axis within a 2D representation of a 3D model, each axis may be assigned one of three colors: e.g., X-axis red, Y-axis green, and Z-axis blue. In other applications the different transform operations (Move/Rotate/Scale) may be merged into a unified gizmo where each handle type represents a transform operation: e.g., pyramid/triangle for move, box for scale, sphere for rotation. FIG. 1D illustrates a single unified gizmo of the prior art. However, determining the viewing perspective and editing an object once one of the gizmos of FIGS. 1A-1D is displayed in a 3D modeler (i.e., on an object) can be confusing.
As illustrated in FIGS. 1A-1D, prior art object manipulators utilize three (3) axes “kabob” style transform manipulators for move, scale, and rotate operations. Axial movement with such transform manipulators are explicit in that the user must indicate the movement by clicking/selecting a specific part of the gizmo (e.g., the square, sphere, or pyramid). Further, such gizmos may limit manipulations to those transform operations that are pivot based. Also, transform operations using such prior art transform manipulators are not made “aware” of other objects in a 3D scene. In addition to the above, the three (3) axes “kabob” style transform manipulators of FIGS. 1A-1D may have one or more of the following further shortcomings:
Unfamiliarity: While the traditional three (3) axes manipulator is fairly ubiquitous within 3D applications, its functions are quite dissimilar to the sort of manipulation paradigms that are common to 2D graphic interactions;
Graphically Dense: There is a lot of functionality clustered tightly together around a single point. Making interactions and behaviors more explicit adds to this density. Removing graphics associated with behavior descriptions makes the manipulator less discoverable.
Graphically Unsophisticated: Adding stylistic details only adds to the graphic density in addition to consuming more draw processing power on limited capacity/capability processors (e.g., mobile solutions or thin client devices such as cellular phones, personal digital assistants, tablet computers [e.g., Apple™ IPAD™, Motorola™ Xoom™, etc.], and or any other type of portable computing device).
Entirely Pivot Based: The notion of a pivot (or “reference”) point is powerful however it is also unfamiliar to graphic software users. In addition, it can be time consuming to manage the pivot point when every interaction is dependent upon it. Such a pivot or reference point specifies a point where the gizmo is attached to the object.
Lack of Flow: As illustrated in FIGS. 1A-1D, separate and distinct gizmos or tools may be used to manipulate an object. The primary issue with separate tools is due to the number of times a user must switch back and forth when they are attempting to hone in on a particular shape and object placement.
In view of the above, the prior art fails to provide an easy-to-use object modification gizmo/mechanism for a 3D modeler.